iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 11
0
自我挑戰組

不要太認真學 Python! 之 我又重新報名了系列 第 11

不要太認真學 Python! - Day 14

  • 分享至 

  • xImage
  •  

[前情提要]

昨天學習目標有四個如下,%s、string、while、for...in range、物件。
前三個已經解決了,剩下最後一個「物件」。
不錯不錯,給自己一點掌聲。

https://ithelp.ithome.com.tw/upload/images/20190915/20120423QNzHFzdYeh.jpg


今天在網路上看了半天,大家說到「物件 (Object)」就一定會提到「類別 (Class)」。

各家解釋都大同小異,但是我就是只能意會不能言傳,簡單來說就是,還是不懂啦!)暈倒

https://ithelp.ithome.com.tw/upload/images/20190915/20120423jZv9Mztlx6.jpg

好啦,千百個人的解釋總有一個能夠理解,因此我決定用我自己的方式來說明什麼是「物件」。

簡單來說,「物件」就像是積木一樣,每個情境都是由不同的「物件」組成,譬如:有三隻貓,一隻5歲的貓叫Cuttie、一隻7歲的貓叫Muffin,另一隻5歲的貓叫donut。

對Python而言,上面的條件簡化成三個物件「物種」、「年齡」、「名字」,也就是三個積木,這三個積木個別套在「5歲的貓Cuttie」、「7歲的貓Muffin」,「5歲的貓donut」皆成立。

情境一

「5歲的 貓 Cuttie」
→ 年齡 物種 姓名

情境二

「7歲的 貓 Muffin」
→ 年齡 物種 姓名

情境三

「5歲的 貓 donut」
→ 年齡 物種 姓名

因此,在Python的世界裡,需要先將共通點找出來,建立物件,等物件建立完以後,再來定義各個物件的「類別」。因為雖然找出共通點,但是每個情境對於「物件」肯定有不同的定義,因此需要依照情境來對「物件」進行「類別」的分類。

用積木來完整比喻的話就是:

物件(Object):積木

類別(Class):積木的顏色

白話解釋 → 每個情境都有相同的地方,必須先將相同的地方分類,然後定義每個分類。

積木比喻 → a,b,c 三個積木創作都是貓,但是因為裡面的條件不同,因此雖然外觀都是貓,但是積木的顏色都不同。


天啊,今天也太想睡了吧
但是,要保持清醒~)大腿捏到瘀青中
再給我一個小時。
https://ithelp.ithome.com.tw/upload/images/20190915/201204231wSIdc8WJ4.jpg


今天也來寫點程式好了,一天沒寫程式一天不對勁。
今天程式碼如下:

class Cat:
    def __init__(self, name, age, color):
        self.name = name
        self.age = age
        self.color = color

Muffin = Cat("Muffin", 10, "black")
print("type of kitty is {}".format(type(kitty)))
Forkie = Cat("Forkie", 4, "brown")
print("type of Forkie is {}".format(type(annie)))
print("Is Muffin equal to Forkie: {}".format(Muffin==Forkie))
print("{} is {} and {} is {}.".format(
Muffin.name,Muffin.color, Forkie.name, Forkie.color))
if self.color = black
print ("Muffin is cute!!")

結果,今天的「物件」目標是寫成功了。
https://ithelp.ithome.com.tw/upload/images/20190916/20120423Ki4bsAaujD.png

但是,當我加上了最後一句if self.color = black print ("Muffin is cute!!") 居然不顯示這句話 QQ

不過我自己知道這句語法肯定錯了 唉
https://ithelp.ithome.com.tw/upload/images/20190916/20120423MaBLCSUtET.jpg

只能明天再戰了。
殘念收工。


不要太認真學 Python! - Day 13


上一篇
不要太認真學 Python! - Day 13
下一篇
不要太認真學 Python! - Day 15
系列文
不要太認真學 Python! 之 我又重新報名了31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1

if self.color = black print ("Muffin is cute!!")
你的意思是不是
if self.color == "black" print ("Muffin is cute!!")

沒事的,===都是常犯錯誤Orz
只是那個black... 比較的是「字串」才對

RGB iT邦新手 5 級 ‧ 2019-09-17 01:41:52 檢舉

我照你這樣寫,他還是不給我執行欸!!

我再研究看看 @@

哈哈哈 if/else寫在同一行跟分開寫是不同寫法啦~

  • 同一行要完整的if/else成對
    • [條件成立做的事情] if [條件] else [條件不成立做的事情]
print ("Muffin is cute!!") if self.color == "black" else [...]
  • 如果硬要寫成一行又落落長,可以用 \ 當作下一行繼續
print ("Muffin is cute!!") if self.color == "black" \
    else [...]
  • 不同行可以不用有else
if self.color == "black":
    print ("Muffin is cute!!")

我要留言

立即登入留言